#include <qapplication.h>
#include "window.moc"
#include "glwidget.h"
#include "ucdinputfile.h"
#include "visKMeans.h"
#include "visKMedoids.h"

using namespace visualization;

//#define _DEBUG_
//#ifdef _DEBUG_
vector<unsigned int> *classHaveObj;
vector<Point> *streamlines;
unsigned int linesNum;
double c[3]; 
//#endif

class glW: public GLWidget
{
public:
	glW(QWidget *parent = 0) 
	     : GLWidget(parent)
	{}

	GLuint makeObject();
  void set(double xn, double xx, double yn, double yx, double zn, double zx,
      double &sc, unsigned int kc, unsigned int iteration, vector<Point> *centers)
	{
		xmin = xn;
		xmax = xx; 
		ymin = yn; 
		ymax = yx;
		zmin = zn;
		zmax = zx;
		scale = sc;
		k = kc; 
		itrt = iteration;
		clusterCenters = centers;
	}

private:
  double xmin, xmax, ymin, ymax, zmin, zmax, scale;
  unsigned int k, itrt;
  // This variable may be spacial for each file.
  vector<Point> *clusterCenters;
};
class win : public Window
{
public:
	win(glW *glwidget)
		: Window(glwidget)
	{}
	win(glW *glWOrigin, glW *glWUltimate, glW *glWCurrent, glW *glWNext)
		 : Window(glWOrigin, glWUltimate, glWCurrent, glWNext)
	{}
	~win(){}
};


